package zip;/*
 * @program:paperless
 * @description:s
 * @author:zhangzhen
 * @create: 2018-10-30 15:24
 **/

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;

public class test {
    public static void main(String[] args) throws IOException {
        //解压zip的包
        //zip文件路径（路径格式如：C:\\Users\\45335\\Desktop\\testZip.zip）
        String fileAddress = "D:\\安装包\\adobe acrobat X pro.zip";
        //zip文件解压路径
        String unZipAddress = "D:\\安装包\\adobe acrobat X pro";
        //去目录下寻找文件
        File file = new File(fileAddress);
        ZipFile zipFile = null;
        try {
            zipFile = new ZipFile(file,"GBK");//设置编码格式
        } catch (IOException exception) {
            exception.printStackTrace();
            System.out.println("解压文件不存在!");
        }

        Enumeration e = zipFile.getEntries();
        while(e.hasMoreElements()) {
            ZipEntry zipEntry = (ZipEntry)e.nextElement();
            if(zipEntry.isDirectory()) {
                String name = zipEntry.getName();
                name = name.substring(0,name.length()-1);
                File f = new File(unZipAddress + name);
                f.mkdirs();
            } else {
                File f = new File(unZipAddress + zipEntry.getName());
                f.getParentFile().mkdirs();
                f.createNewFile();
                InputStream is = zipFile.getInputStream(zipEntry);
                FileOutputStream fos = new FileOutputStream(f);
                int length = 0;
                byte[] b = new byte[1024];

                while((length=is.read(b, 0, 1024))!=-1) {
                    fos.write(b, 0, length);
                }
                is.close();
                fos.close();
            }
        }
        if (zipFile != null) {
            zipFile.close();
        }
        file.deleteOnExit();//解压完以后将压缩包删除
    }
    public void update(){

    }

}